package org.zwy.gradetrack.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.zwy.gradetrack.entity.Teacher;

import java.util.List;

/**
 * 教师Service接口
 */
public interface TeacherService extends IService<Teacher> {

    /**
     * 分页查询教师列表
     *
     * @param current 当前页
     * @param size 每页大小
     * @param name 教师姓名（可选）
     * @param teacherId 教师工号（可选）
     * @param title 职称（可选）
     * @param majorId 所属专业ID（可选）
     * @return 分页结果
     */
    Page<Teacher> pageTeachers(Integer current, Integer size, String name, String teacherId, String title, Integer majorId);

    /**
     * 创建教师
     *
     * @param teacher 教师信息
     * @return 是否创建成功
     */
    boolean createTeacher(Teacher teacher);

    /**
     * 更新教师信息
     *
     * @param teacher 教师信息
     * @return 是否更新成功
     */
    boolean updateTeacher(Teacher teacher);

    /**
     * 删除教师
     *
     * @param id 教师ID
     * @return 是否删除成功
     */
    boolean deleteTeacher(Integer id);

    /**
     * 根据ID获取教师详情
     *
     * @param id 教师ID
     * @return 教师信息
     */
    Teacher getTeacherById(Integer id);

    /**
     * 根据姓名查询教师
     *
     * @param name 教师姓名
     * @return 教师列表
     */
    List<Teacher> getTeachersByName(String name);

    /**
     * 获取所有教师列表
     *
     * @return 所有教师列表
     */
    List<Teacher> getAllTeachers();

    /**
     * 批量导入教师数据
     *
     * @param teachers 教师列表
     * @return 是否导入成功
     */
    boolean batchImport(List<Teacher> teachers);
} 